package com.shujia.jichu

/**
 * 面向对象的编写
 * 类-->对象
 *
 * 类中所拥有的成员：构造方法，成员方法，成员变量
 */
object Demo7Object {
  def main(args: Array[String]): Unit = {
    //scala是java的封装，同样类默认会提供一个无参的构造方法
    //scala中如果是一个无参构造方法调用创建对象的话，小括号可以不用写

    //    val stu1: Student = new Student
    //    val stu2 = new Student(10, 20)

    //创建一个Student2类的对象
    val s1: Student2 = new Student2("001", "张三")
    println(s1) //未重写toString()方法的话，打印的依旧是地址值
//    println(s1._id)
//    println(s1._name)
    println(s1.getId)
    println(s1.getName)
    println("="*100)
    s1.setId("0001")
    println(s1)
    println("="*100)
    //创建Student3类的对象
    val s2: Student3 = new Student3("002", "李四")
    println(s2)
    println("="*100)
    val s3: Student3 = new Student3("002", "李四",18)
    println(s3)
    println("="*100)
    //创建一个Dog类对象
    val dog:Dog = new Dog("1001", "阿拉斯加")
    println(dog)
    dog.fun1()
    println("="*100)
    //scala中也存在多态，父类的引用指向子类对象
    val dog2:Animal = new Dog("1001", "阿拉斯加")
  }
}


